// set方法设置键名key对应的键值为value，然后返回整个 Map 结构。如果key已经有值，则键值会被更新，否则就新生成该键
const map = new Map();
map.set('itbaizhan', true);
map.set('sxt', false);
console.log(map);

// get(key)方法读取key对应的键值，如果找不到key，返回undefined
const map2 = new Map();
map2.set('itbaizhan', true).set("sxt",15)
console.log(map2.get("itbaizhan"));
console.log(map2.get("it"));

// has方法返回一个布尔值，表示某个键是否在当前 Map 对象之中
const map3 = new Map();
map3.set('itbaizhan', true).set("sxt",15)
console.log(map3.has("itbaizhan"));

// delete方法删除某个键，返回true。如果删除失败，返回false
const map4 = new Map();
map4.set('itbaizhan', true).set("sxt",15)
map4.delete("itbaizhan")
console.log(map4);

// clear方法清除所有成员，没有返回值
const map5 = new Map();
map5.set('itbaizhan', true).set("sxt",15)
map5.clear()
console.log(map5);


// 遍历
// Map 结构原生提供三个遍历器生成函数和一个遍历方法
// Map.prototype.keys()：返回键名的遍历器。
// Map.prototype.values()：返回键值的遍历器。
// Map.prototype.entries()：返回所有成员的遍历器。
// Map.prototype.forEach()：遍历 Map 的所有成员。
const map6 = new Map();
map6.set('itbaizhan', true).set("sxt",15)

for (let key of map6.keys()) {
  console.log(key);
} 

for (let value of map6.values()) {
  console.log(value);
}

for (let item of map6.entries()) {
  console.log(item[0], item[1]);
}

map6.forEach(function (value, key, map6) {
  console.log("Key: %s, Value: %s", key, value);
});
